﻿Imports FinanceiroBLL
Imports FinanceiroDAL
Imports VendasBLL

Public Class RecParcelamentosFRM
    Dim objBLL As New ContasReceberBLL
    Dim itobjBLL As New itensCtasReceberBLL
    Dim objit As New itensCtasReceberBLL()
    Dim objcli As New ClientesBLL
    Public Op As Char
    Dim parcOpen As Decimal = 0
    Public formarecebida, nomecli, bolcheque As String
    Public codctr, codccc, codcli, numparcela, conta, vendaref, stat As Integer
    Public diavenc, dtemissao As Date 'dia vencimento
    Public ValTotal, totalgrid, calc As Decimal 'valor total
    Dim tabitens As New DataTable
    Dim ret As Boolean
    Dim dtrec As Nullable(Of Date)
    Dim objitens As New itensCtasReceberBLL
    Dim valortotal As Decimal
    Private Sub TSBVoltar_Click(sender As System.Object, e As System.EventArgs) Handles TSBVoltar.Click
        Dim opt As Integer
        If Op = "C" And DGVDados.Rows.Count <= 0 Then
            opt = MsgBox("Parcelamento não efetuado, deseja realmente fechar?", MsgBoxStyle.OkCancel)
            If opt = 1 Then
                Me.Close()
                limpar()
                objBLL = Nothing
            End If
        Else
            Me.Close()
            limpar()
            objBLL = Nothing
        End If
    End Sub
#Region "Limpar"
    Sub limpar()
        TXTCliente.Text = ""
        TXTDias.Text = ""
        TXTParcelas.Text = ""
        TXTValorTotal.Text = ""
        TXTTotalGrid.Text = ""
        tabitens = New DataTable
        '   DGVDados.Dispose()
    End Sub
#End Region
#Region "Inicializa"
    Sub inicializa()
        Try
            objconexao.carregaCombo(CBFRecebimento, "Generico.Gen_FormaPagamento", "pag_codigo", "pag_descricao", "sta_codigo =1", "")
            TXTCliente.Text = nomecli
            DTPEmissao.Value = dtemissao
            CBFRecebimento.SelectedValue = formarecebida
            DTPVencimento.Value = diavenc
            TXTParcelas.Text = numparcela
        Catch ex As Exception
        End Try
    End Sub
#Region "SomaGrid"
    Sub somagrid()
        Try
            Dim valor As Decimal = 0
            For Each col As DataGridViewRow In DGVDados.Rows
                valor = valor + col.Cells("icr_valor").Value
            Next
            TXTTotalGrid.Text = Math.Round(valor).ToString.Replace("R$", "")
            TXTTotalGrid.Text = FormatCurrency(TXTTotalGrid.Text)
            Me.LBNumRegistros.Text = DGVDados.RowCount.ToString 'linhas
        Catch ex As Exception
        End Try
    End Sub
#End Region
#Region "SomaColunas"
    Sub SomaColunas() 'validar parcelas abertas
        Dim indice As Integer = -1
        Decimal.TryParse(TXTValorTotal.Text, ret)
        Try
            parcOpen = objitens.Somaparcelas(codctr).ToString
            TXTValorTotal.Text = parcOpen
            TXTValorTotal.Text = FormatCurrency(parcOpen.ToString.Replace("R$", ""))
            ' TXTVrParcela.Text = FormatCurrency(TXTVrParcela.Text.Replace("R$", "").Replace(" ", ""))
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
        End Try
    End Sub
#End Region
#End Region
#Region "Botao"
    'Sub Botton()
    '    TSBSalvar.Visible = False
    '    TSBAlterar.Visible = False
    '    If valortotal = 0 Or TXTValorTotal.Text = "" Then
    '        BCalcular.Visible = False
    '    End If
    '    If valortotal <> 0 Or TXTValorTotal.Text <> "" Then
    '        BCalcular.Visible = True
    '        TSBAlterar.Visible = True
    '        BCalcular.Visible = False

    '    End If
    'End Sub
#End Region
#Region "LOAD"
    Private Sub RecParcelamentosFRM_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Try
            limpar()
            Lista()
            If Op = "C" Then
                objconexao.carregaCombo(CBFRecebimento, "Generico.Gen_FormaPagamento", "pag_codigo", "pag_descricao", "sta_codigo =1", "")
                SomaColunas()
                inicializa()
                somagrid()
                BCalcular.Visible = True
                TSBSalvar.Visible = True
            ElseIf Op = "E" Then 'editar
                carregagrid()
                objconexao.carregaCombo(CBFRecebimento, "Generico.Gen_FormaPagamento", "pag_codigo", "pag_descricao", "sta_codigo =1", "")
                carregarcampos()
                somagrid()
                SomaColunas()
                statusBtn()
                'GBParcelas.Visible = False
                'TSBSalvar.Visible = True
            End If
        Catch ex As Exception
        End Try
    End Sub
#End Region
#Region "carrega campos"
    Sub carregarcampos()
        objBLL = New ContasReceberBLL(Val(LCodigo.Text), 6)
        tabitens = objBLL.buscaritens()
        tabitens.AcceptChanges()
        DGVDados.DataSource = tabitens
        DTPEmissao.Value = objBLL.ctrdtemissao
        'TXTValorTotal.Text = parcOpen
        ' TXTValorTotal.Text = FormatCurrency(TXTValorTotal.Text("R$","")
        objcli = New ClientesBLL(objBLL.clicodigo)
        TXTCliente.Text = objcli.Nome
        itobjBLL = New itensCtasReceberBLL(codctr, 2)
        CBFRecebimento.SelectedValue = itobjBLL.pagcodigo
    End Sub
#End Region
#Region "Carrega Grid"
    Sub carregagrid()
        DGVDados.DataSource = objBLL.localizar(codctr, 4)
        DGVDados.Refresh()
    End Sub
#End Region
#Region "Excluir"
    Sub exclui() 'exclui intens contas receber
        ret = False
        objitens = New itensCtasReceberBLL
        ret = objitens.excluir(codctr) 'foi trocado este cod
        If (ret = True) Then
        Else
            MsgBox("Houve um problema, verifique o parcelamento", MsgBoxStyle.Exclamation)
            objitens = Nothing
        End If
    End Sub
#End Region
#Region "Parcelamento"
    Sub parcelamento()
        Dim ret As Integer
        Dim dias As Integer = Val(TXTDias.Text)
        Dim vencimento As Date = DTPVencimento.Text
        Dim Vlrparc, parc As Decimal
        Decimal.TryParse(TXTValorTotal.Text.Replace("R$", ""), valortotal)
        Decimal.TryParse(TXTTotalGrid.Text.Replace("R$", ""), totalgrid)
        Dim par As Decimal = TXTParcelas.Text
        Try
            If valortotal <> 0 Then
                If (TXTParcelas.Text <> "" And par <> 0) Then
                    ' If (DTPVencimento.Value.ToShortDateString) >=  Then
                    ret = Date.Compare(DTPVencimento.Value.ToShortDateString, Date.Now.ToShortDateString)
                    If ret <> -1 Then
                        If (dias <> 0) Then
                            Vlrparc = valortotal / par
                            Dim i As Integer = 0
                            While i < par
                                Dim Data As Date = vencimento
                                parc = Math.Round(Vlrparc, 2, MidpointRounding.AwayFromZero)
                                '  Dim objit As New itensCtasReceberBLL()
                                objit.icrcodigo = 0
                                objit.ctrcodigo = codctr
                                objit.pagcodigo = CBFRecebimento.SelectedValue
                                objit.icrvalor = parc
                                objit.icrparcela = i + 1 'num de parcela
                                objit.icrdesconto = 0
                                objit.icrjam = 0
                                objit.icrvalrecebido = 0
                                objit.icrdtrecebimento = Nothing
                                objit.icrdtvencimento = Data
                                objit.concodigo = conta
                                objit.stacodigo = stat
                                objit.icrobs = ""
                                objit.icrbolcheque = bolcheque
                                Carrega_Selecao(objit)
                                i = i + 1
                                vencimento = vencimento.AddDays(dias) 'add dias + definido
                            End While
                            DGVDados.Refresh()
                            SomaColunas()
                        Else
                            MsgBox("Preencha o campo dias! ", MsgBoxStyle.Information)
                            TXTDias.Select()
                        End If

                    Else
                        MsgBox("Data de vencimento menor que data atual", MsgBoxStyle.Exclamation)
                        DTPVencimento.Select()
                    End If
                Else
                    MsgBox("Parcelamento não realizado.", MsgBoxStyle.Exclamation)
                End If
            Else
                MsgBox("Não existem dados para parcelamento")
                TSBSalvar.Visible = False
                TSBAlterar.Visible = False
                BCalcular.Visible = False
            End If
            DGVDados.DataSource = tabitens
            DGVDados.Refresh()
        Catch ex As Exception

        End Try
    End Sub
#End Region
#Region "Verifica"
    Sub verifica()
        Try
            Dim var As Integer
            Dim i As Integer = 0
            var = DGVDados.Rows.Count
            While i < var
                Dim indice As Integer
                indice = -1
                For Each linha As DataGridViewRow In DGVDados.SelectedRows
                    If (Not linha.Cells("ctr_codigo") Is Nothing) Then
                        indice = linha.Index
                    End If
                Next
                If (indice <> -1) Then
                    tabitens.Rows.RemoveAt(indice)
                    tabitens.AcceptChanges()
                Else : Throw New Exception("Selecione um produto para remover")
                End If
                i = i + 1
            End While

        Catch ex As Exception
            MessageBox.Show(ex.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End Try
    End Sub
#End Region
#Region "Calcular parcelamento"
    Private Sub BCalcular_Click(sender As System.Object, e As System.EventArgs) Handles BCalcular.Click
        Try
            verifica()
            If Op <> "C" Then
                If Math.Round(valortotal) = Math.Round(totalgrid) Then
                    parcelamento()
                    TSBSalvar.Visible = True
                Else
                    MsgBox("Os valores não conferem, por favor verificar.", MsgBoxStyle.Exclamation)
                    TXTTotalGrid.Select()
                End If
            Else '=C
                parcelamento() 'parcela
            End If

        Catch ex As Exception
            MsgBox("")
        End Try
    End Sub
#End Region
#Region "Lista"
    Sub Lista() '*1
        Try
            tabitens = Nothing
            tabitens = New DataTable
            tabitens.Columns.Add("icr_codigo", GetType(Integer))
            tabitens.Columns.Add("ctr_codigo", GetType(Integer))
            tabitens.Columns.Add("pag_codigo", GetType(Integer))
            tabitens.Columns.Add("icr_valor", GetType(Decimal))
            tabitens.Columns.Add("icr_parcela", GetType(Integer))
            tabitens.Columns.Add("icr_desconto", GetType(Decimal))
            tabitens.Columns.Add("icr_jam", GetType(Decimal))
            tabitens.Columns.Add("icr_valrecebido", GetType(Decimal))
            tabitens.Columns.Add("icr_dtrecebimento", GetType(Date))
            tabitens.Columns.Add("icr_dtvencimento", GetType(Date))
            tabitens.Columns.Add("con_codigo", GetType(Integer))
            tabitens.Columns.Add("sta_codigo", GetType(Integer))
            tabitens.Columns.Add("icr_obs", GetType(String))
            tabitens.Columns.Add("icr_bolcheque", GetType(String))
            DGVDados.DataSource = tabitens
        Catch
            Throw New Exception("Erro ao gerar lista")
        End Try
    End Sub
#Region "Carrega na Datagirdview"
    Sub Carrega_Selecao(item As itensCtasReceberBLL)
        Try
            Dim soma As Decimal
            Dim linha As DataRow
            linha = tabitens.NewRow
            linha("icr_codigo") = item.icrcodigo
            linha("ctr_codigo") = item.ctrcodigo
            linha("pag_codigo") = item.pagcodigo
            linha("icr_valor") = item.icrvalor
            linha("icr_parcela") = item.icrparcela
            linha("icr_desconto") = item.icrdesconto
            linha("icr_jam") = item.icrjam
            linha("icr_valrecebido") = item.icrvalrecebido
            If item.icrdtrecebimento.HasValue Then
                linha("icr_dtrecebimento") = item.icrdtrecebimento
            Else
                linha("icr_dtrecebimento") = DBNull.Value
            End If
            linha("icr_dtvencimento") = item.icrdtvencimento
            linha("con_codigo") = item.concodigo
            linha("sta_codigo") = item.stacodigo
            linha("icr_obs") = item.icrobs
            tabitens.Rows.Add(linha)
            tabitens.AcceptChanges()
            soma = 0
            For Each x In tabitens.Rows
                soma += Decimal.Parse(x("icr_valor"))
            Next
            TXTTotalGrid.Text = Math.Round(soma, 2, MidpointRounding.AwayFromZero)
            TXTTotalGrid.Text = FormatCurrency(TXTTotalGrid.Text)
            Me.LBNumRegistros.Text = DGVDados.RowCount.ToString 'soma a linha de registros
            TSBSalvar.Visible = True
        Catch ex As Exception
            Throw New Exception("Erro ao inserir na grid")
        End Try
    End Sub
#End Region
#End Region
#Region "Salvar"
    Private Sub TSBSalvar_Click(sender As System.Object, e As System.EventArgs) Handles TSBSalvar.Click
        Dim valortotal, totalgrid As Decimal
        Decimal.TryParse(TXTValorTotal.Text.Replace("R$", ""), valortotal)
        Decimal.TryParse(TXTTotalGrid.Text.Replace("R$", ""), totalgrid)

        Try
            'exclui()
            If DGVDados.RowCount > 0 Then
                If Math.Round(valortotal) = Math.Round(totalgrid) Then
                    If (ret = False) Then
                        If (MessageBox.Show("Deseja salvar os parcelamentos?", "Finalização", MessageBoxButtons.YesNo, MessageBoxIcon.Information) = Windows.Forms.DialogResult.Yes) Then
                            If Op = "E" Then  ' "O" vem de parcela editada
                                Dim indice As Integer
                                indice = -1
                                For Each linha As DataGridViewRow In DGVDados.SelectedRows
                                    If (Not linha.Cells("ctr_codigo") Is Nothing) Then
                                        indice = linha.Index
                                    End If
                                Next
                                If (indice <> -1) Then
                                    objBLL = New ContasReceberBLL(codctr, 6)
                                    objBLL = New ContasReceberBLL(objBLL.ctrcodigo, objBLL.vencodigo, objBLL.ccccodigo, objBLL.ctrdtemissao, objBLL.clicodigo, objBLL.valortotal)
                                    Dim objp As itensCtasReceberBLL
                                    For Each linha As DataRow In tabitens.Rows
                                        Dim objitBll As New itensCtasReceberBLL(linha("icr_codigo"), 1)
                                        conta = objitBll.concodigo
                                        dtrec = Nothing
                                        If Not IsNothing(objitBll.icrdtrecebimento) Then
                                            dtrec = objitBll.icrdtrecebimento
                                        Else
                                            dtrec = Nothing
                                        End If
                                        objp = New itensCtasReceberBLL(Val(0), codctr, CBFRecebimento.SelectedValue, 0, 0, 0, 0, 0, dtrec, Nothing, conta, stat, "", "")
                                        objp.icrparcela = linha("icr_parcela")
                                        objp.icrcodigo = linha("icr_codigo")
                                        objp.pagcodigo = linha("pag_codigo")
                                        objp.icrdtvencimento = linha("icr_dtvencimento")
                                        objp.icrvalor = linha("icr_valor")
                                        objp.stacodigo = linha("sta_codigo")
                                        objBLL.lCtasreceber.Add(objp)
                                    Next
                                Else : Throw New Exception("Selecione um parcela para editar")
                                End If
                            ElseIf Op = "C" Then 'vem de contas Receber FRM
                                objBLL = New ContasReceberBLL(codctr, vendaref, codccc, dtemissao, codcli, ValTotal)
                                Dim objitBll As New itensCtasReceberBLL(codctr, 2)
                                conta = objitBll.concodigo
                                Dim objp As itensCtasReceberBLL
                                For Each linha As DataRow In tabitens.Rows
                                    objp = New itensCtasReceberBLL(Val(0), codctr, CBFRecebimento.SelectedValue, 0, 0, 0, 0, 0, Nothing, Nothing, conta, 4, "", "")
                                    objp.icrparcela = linha("icr_parcela")
                                    objp.icrdtvencimento = linha("icr_dtvencimento")
                                    objp.icrvalor = linha("icr_valor")
                                    objp.pagcodigo = linha("pag_codigo")
                                    objBLL.lCtasreceber.Add(objp)
                                Next
                            Else
                                MsgBox("Operação não realizada!", MsgBoxStyle.Critical)
                            End If
                        Else
                            MsgBox("Parcelamento não efetuado.", MsgBoxStyle.Exclamation)
                        End If
                    Else
                        MsgBox("Operação não realizada!", MsgBoxStyle.Critical)
                    End If
                Else
                    Throw New Exception("O valor total não corresponde ao valor declarado da nota, por favor confira os itens")
                End If
            Else
                MsgBox("Por favor verifique a existência de dados a serem salvos", MsgBoxStyle.Critical)
            End If
            inserir()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End Try
    End Sub
#End Region
#Region "inserir"
    Sub inserir()
        Try
            If DGVDados.Rows.Count > 0 Then
                exclui()
                objBLL.Inserir()
                MessageBox.Show("Parcelamento gravado com sucesso", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information)
                objBLL.limpar()
            End If
        Catch ex As Exception
        Finally
            Me.Close()
        End Try

    End Sub
#End Region
#Region "Txtvalortotal Leave"
    Private Sub TXTValorTotal_Leave(sender As System.Object, e As System.EventArgs) Handles TXTValorTotal.Leave
        If (TXTValorTotal.Text <> "" And TXTValorTotal.Text <> "0,00") Then
            TXTValorTotal.Text = FormatCurrency(TXTValorTotal.Text.Replace("R$", "").Replace(" ", ""))
        Else
            TXTValorTotal.Text = "0,00"
        End If
    End Sub
#End Region
#Region "KeyPress"
    Private Sub RecParcelamentosFRM_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
        If e.KeyChar = Convert.ToChar(13) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub
#End Region
#Region "Double Click"
    Private Sub DGVDados_CellDoubleClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGVDados.CellDoubleClick
        TSBSalvar.Visible = True
        TSBAlterar_Click(Nothing, Nothing)
    End Sub
#End Region
#Region "Alterar"
    Private Sub TSBAlterar_Click(sender As System.Object, e As System.EventArgs) Handles TSBAlterar.Click
        Try
            TSBSalvar.Visible = True
            Dim indice As Integer
            indice = -1
            For Each linha As DataGridViewRow In DGVDados.SelectedRows
                If (Not linha.Cells("ctr_codigo") Is Nothing) Then
                    indice = linha.Index
                End If
            Next
            If (indice <> -1) Then

                Dim sta As Integer
                sta = Val(DGVDados.Rows(indice).Cells("sta_codigo").Value)
                If sta <> 6 Then
                    Dim frm As New ParcelaEditadaFRM 'não ha necessidade de passar todos os parametros
                    frm.status = "E" 'editar
                    frm.objitens = New itensCtasReceberBLL
                    frm.objitens.icrcodigo = tabitens.Rows(indice)("icr_codigo")
                    frm.objitens.ctrcodigo = tabitens.Rows(indice)("ctr_codigo")
                    frm.objitens.pagcodigo = tabitens.Rows(indice)("pag_codigo")
                    frm.objitens.icrvalor = parcOpen 'tabitens.Rows(indice)("icr_valor")
                    frm.objitens.icrparcela = tabitens.Rows(indice)("icr_parcela")
                    frm.objitens.icrdesconto = tabitens.Rows(indice)("icr_desconto")
                    frm.objitens.icrjam = tabitens.Rows(indice)("icr_jam")
                    frm.objitens.icrvalrecebido = tabitens.Rows(indice)("icr_valrecebido")
                    If frm.objitens.icrdtrecebimento.HasValue Then
                        frm.objitens.icrdtrecebimento = tabitens.Rows(indice)("icr_dtrecebimento")
                    Else
                        frm.objitens.icrdtrecebimento = Nothing
                    End If
                    frm.objitens.icrdtvencimento = tabitens.Rows(indice)("icr_dtvencimento")
                    frm.objitens.concodigo = tabitens.Rows(indice)("con_codigo")
                    frm.objitens.stacodigo = tabitens.Rows(indice)("sta_codigo")
                    '  frm.objitens.icrobs = tabitens.Rows(indice)("icr_obs").ToString
                    frm.valortotal = TXTValorTotal.Text.Replace("R$", "")
                    frm.parcelas = Val(LBNumRegistros.Text)
                    frm.totalgrid = TXTTotalGrid.Text.Replace("R$", "")
                    frm.valparcela = tabitens.Rows(indice)("icr_valor")
                    frm.codstatus = frm.objitens.stacodigo
                    frm.ShowDialog()
                    If (frm.status = "O" And Not IsNothing(frm.objitens)) Then 'operação parcela editada
                        itobjBLL = frm.objitpBLL
                        editanagrid(frm.objitens, indice)

                    End If
                Else
                    MsgBox("Parcela já recebida!", MsgBoxStyle.Exclamation)
                End If
            Else : Throw New Exception("Selecione um parcela para editar")
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End Try
    End Sub
#End Region
#Region "Edita na Datagridview"
    Public Sub editanagrid(itens As itensCtasReceberBLL, indice As Integer)
        Try
            tabitens.Rows(indice)("icr_codigo") = itens.icrcodigo
            tabitens.Rows(indice)("ctr_codigo") = itens.ctrcodigo
            tabitens.Rows(indice)("pag_codigo") = itens.pagcodigo
            tabitens.Rows(indice)("icr_valor") = itens.icrvalor
            tabitens.Rows(indice)("icr_parcela") = itens.icrparcela
            tabitens.Rows(indice)("icr_desconto") = itens.icrdesconto
            tabitens.Rows(indice)("icr_jam") = itens.icrjam
            tabitens.Rows(indice)("icr_valrecebido") = itens.icrvalrecebido
            If IsNothing(tabitens.Rows(indice)("icr_dtrecebimento")) Then
                tabitens.Rows(indice)("icr_dtrecebimento") = itens.icrdtrecebimento
            Else
                tabitens.Rows(indice)("icr_dtrecebimento") = DBNull.Value
            End If
            tabitens.Rows(indice)("icr_dtvencimento") = itens.icrdtvencimento
            tabitens.Rows(indice)("con_codigo") = itens.concodigo
            tabitens.Rows(indice)("sta_codigo") = itens.stacodigo
            ' tabitens.Rows(indice)("icr_obs") = itens.icrobs
            tabitens.AcceptChanges()
            Dim soma As Decimal = 0
            For Each x In tabitens.Rows
                soma += Decimal.Parse(x("icr_valor"))
            Next
            TXTTotalGrid.Text = Math.Round(soma, 2, MidpointRounding.AwayFromZero) '(soma).ToString.Replace("R$", "")
            TXTTotalGrid.Text = FormatCurrency(TXTTotalGrid.Text)
            DGVDados.Refresh()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End Try
    End Sub
#End Region
#Region "StatusBTN"
    Sub statusBtn()
        TSBSalvar.Visible = False
        BCalcular.Visible = False
        TXTCliente.ReadOnly = True
        CBFRecebimento.Enabled = False
        DTPVencimento.Enabled = False
        TXTParcelas.ReadOnly = True
        TXTDias.ReadOnly = True
    End Sub
#End Region
    Private Sub DGVDados_RowPrePaint_1(sender As System.Object, e As System.Windows.Forms.DataGridViewRowPrePaintEventArgs) Handles DGVDados.RowPrePaint
        Try
            If DGVDados.Rows.Count > 0 Then
                If (DGVDados.Rows(e.RowIndex).Cells("sta_descricao").Value = "Aberto") And (DGVDados.Rows(e.RowIndex).Cells("icr_dtvencimento").Value = Date.Now.ToShortDateString) Then
                    DGVDados.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.Yellow 'hoje
                End If
                If (DGVDados.Rows(e.RowIndex).Cells("sta_descricao").Value = "Aberto") And (DGVDados.Rows(e.RowIndex).Cells("icr_dtvencimento").Value > Date.Now.ToShortDateString) Then
                    DGVDados.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.White 'não vencidas (futuro)
                End If
                If (DGVDados.Rows(e.RowIndex).Cells("sta_descricao").Value = "Aberto") And (DGVDados.Rows(e.RowIndex).Cells("icr_dtvencimento").Value < Date.Now.ToShortDateString) Then
                    DGVDados.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.Salmon 'vencidos
                End If
                If (DGVDados.Rows(e.RowIndex).Cells("sta_descricao").Value = "Fechado") And (DGVDados.Rows(e.RowIndex).Cells("icr_valrecebido").Value <> 0) Then 'val recebido
                    DGVDados.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.PaleGreen 'pagos
                End If
            End If
        Catch ex As Exception
        End Try
    End Sub

End Class